Providing global data services to customers across the world has become an important function for Cloud service providers. Many such services (e.g., Google® App Engine, Amazon® S3, Dropbox®, etc.) are hosted in geographically distributed datacenters to minimize local customer access latency and improve service availability. To ensure customers in different regions observe the same data view, strongly-consistent transactional replication is necessary. Implementing strongly-consistent transactional replication across datacenters requires order consensus protocols.
In general, consensus protocols can be used to reach agreement on the order of transactions. The performance of protocols determines the performance of the data service. However, understanding the performance of consensus protocols is non-trivial. There are different consensus protocols and their performance characteristics are quite different from each other. The actual performance of a protocol also depends on the underlying network characteristics.